package com.wootion.cims.response;

import lombok.Getter;
import lombok.Setter;

/**
 * 相应结果编码
 * @author heaven
 *
 */
@SuppressWarnings("all")
public enum ResultCode {

	NORMAL(20000L, "正常响应"),
	AUTH_FAIL(20001L, "账号或密码错误"),
	SYSTEM_ERROR(20002L, "系统异常"),
	ACCESS_DENIED_ERROR(20003L, "无访问权限"),
	INPORT_ERROR(20004L, "文件%d行%d列数据不合法"),
	STORAGE_ERROR(20005L, "请配置存储方式"),
	NAME_EXITS_ERROR(20006L, "已存在此名称数据，请更换名称"),
	METHOD_ARGUMENT_NOT_VALID_ERROR(20007L, "方法校验失败"),
	ROLE_EXITS_ERROR(20008L, "已存在此角色名，请更换角色名"),
	ROLE_ERROR(20009L, "该角色已被用户关联,请先在用户管理取消关联,再删除~"),
	PERMISSION_ERROR(20010L, "该权限已被角色关联,请先在角色管理取消关联,再删除~"),
	MENU_ERROR(20011L, "该菜单已被角色关联,请先在角色管理取消关联,再删除~"),
	ACCOUNT_NOT_ENABLED(20012L, "账号未启用，请联系管理员！"),
	ACCOUNT_NOT_EXIST(20013L, "租户不存在，请联系管理员！"),
	AUTHENTICATION_FAILED(20014L,"认证失败"),
    
	PARAM_IS_INVALID(10001L, "参数无效"),
    PARAM_IS_BLANK(10002L, "参数为空"),
    PARAM_TYPE_BIND_ERROR(10003L, "参数类型错误"),
    PARAM_NOT_COMPLETE(10004L, "参数缺失"),
    PARAM_SIZE_TOLONG(10005L,"参数长度超限"),
    PARAM_SIZE_SHORT(10006L,"参数长度过短"),



	// 设备相关
	UNIQUE_CODE_REPEAT(300011L, "你输入的唯一码重复了"),
	THIS_DEVICE_DOES_NOT_EXIST(300012L, "不存在此设备"),
	WRONG_REQUEST_PARAMETER(300013L, "你请求的参数有误"),
	FAILED_TO_DELETE(300014L, "部分删除失败"),
	DEVICE_TYPE_VALUE_EXITS_ERROR(30001L, "已存在此设备类型值数据，请更换!"),
	DEVICE_TYPE_NAME_EXITS_ERROR(30001L, "已存在此设备类型名数据，请更换!"),
	GATEWAY_VALUE_EXITS_ERROR(30002L, "已存在此网关唯一码数据，请更换!"),
	GATEWAY_BINDING_EXITS_ERROR(30003L, "该网关已被绑定，请选择其他网关!"),
	DEVICE_TYPE_NOT_BE_BOUND_DELETE(30004L, "设备绑定的设备类型, 不可删除!"),
	DEVICE_TYPE_BE_BOUND(30005L, "设备绑定的设备类型, 不可删除!"),
	GATEWAY_TYPE_BE_BOUND(30006L, "该网关已被绑定, 不可删除!"),
	RECOURSE_BE_BOUND(30007L, "该素材已被绑定, 不可删除!"),
	LONGITUDE_AND_LATITUDE_CHECK_FAILED(30008L, "经纬度校验失败, 请检查后上传!"),
	GATEWAY_REPEATED_DATA_ENTRY(30009L, "网关数据异常, 请检查后上传!"),
	GATEWAY_UNIQUE_CODE_READ_ONLY(30010L, "该网关下已存在设备, 禁止修改网关唯一码!"),
	
	PARAMETER_MISSING(40000l,"参数缺失"),
	
	
	TOKEN_IS_INVALID(50001L, "凭证无效"),
	OKEN_IS_EXPIRED(50002L, "凭证过期")
	;
	
	@Setter
	@Getter
	private Long code;

	@Setter
	@Getter
	private String message;

	ResultCode(Long code, String message) {
		this.setCode(code);
		this.setMessage(message);
	}

}
